package com.vcit.system.mapper.student;

import java.util.List;

import com.vcit.common.core.domain.entity.TStudent;
import com.vcit.system.domain.vo.StudentListVo;

/**
 * 学生Mapper接口
 *
 * @author dff
 * @date 2025-01-17
 */
public interface TStudentMapper
{
    /**
     * 查询学生
     *
     * @param id 学生主键
     * @return 学生
     */
    public TStudent selectTStudentById(Long id);

    public StudentListVo selectTStudentVoById(Long id);

    /**
     * 查询学生列表
     *
     * @param tStudent 学生
     * @return 学生集合
     */
    public List<TStudent> selectTStudentList(TStudent tStudent);

    /**
     * 新增学生
     *
     * @param tStudent 学生
     * @return 结果
     */
    public int insertTStudent(TStudent tStudent);

    /**
     * 修改学生
     *
     * @param tStudent 学生
     * @return 结果
     */
    public int updateTStudent(TStudent tStudent);

    /**
     * 删除学生
     *
     * @param id 学生主键
     * @return 结果
     */
    public int deleteTStudentById(Long id);

    /**
     * 批量删除学生
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTStudentByIds(Long[] ids);

    /**
     * 查询学生 系部 专业 班级
     * @return
     */
    public List<StudentListVo> selectStudentAllInfoVo(StudentListVo studentListVo);

    /**
     * 根据学号查询学生
     *
     * @param sno 学号
     * @return 学生信息
     */
    public TStudent selectTStudentBySno(String sno);


    /**
     * 根据姓名查询学生信息
     *
     * @param name 学生姓名
     * @return 学生对象信息
     */
    public TStudent selectStudentByName(String name);

    /**
     * 根据身份证号查询学生信息
     *
     * @param idCard 身份证号
     * @return 学生对象信息
     */
    public TStudent selectStudentByIdCard(String idCard);

    /**
     * 根据前缀查询最大学号
     *
     * @param prefix 学号前缀
     * @return 最大学号
     */
    public String selectMaxSnoByPrefix(String prefix);
}

